package BYD;

/**
 * @author ht
 * @create 2025-06-29 18:39
 * @desc
 **/
public class T5 {

/*    给定一个长度为n的正整数(22)数组，每次任取其中两个数，用较大的数减去较小的数
            (如果a[i] >a[ 则 a[] = a[i]-a])，如果两数相等则不能操作，经过任意次操作后使得
            最后数组中的元素尽量小;输出最终数组 */

   //通过反复执行“任取两个数，用较大的数减去较小的数（如果两数相等则不能操作）”的过程，最终数组的元素会达到一个稳定状态，其中所有元素都相等，并且等于整个数组的最大公约数（GCD）。

    public static void main(String[] args) {
        int[] nums = new int[]{3, 9, 12, 15};

        int GCD = nums[0];
        for (int i = 1; i < nums.length; i++) {
            GCD = getGCD(GCD, nums[i]);
        }

        for (int i = 0; i < nums.length; i++) {
            System.out.println(GCD + " ");
        }


    }

    private static int getGCD(int a, int b) {
        while (b > 0) {
            int temp = b;
            b = a % b;
            a = temp;
        }
        return a;
    }
}
